package boboUtil;

public interface BoboMap<K, V> {
    int size();
    boolean isEmpty();
    boolean containsKey(Object key);
    boolean containsValue(Object value);
    V get(Object key);
    V put(K key, V value);
    V remove(Object key);
    void putAll(BoboMap<? extends K, ? extends V> m);
    void clear();

    BoboSet<K> keySet();
    BoboCollection<V> values();

    interface Entry<K,V>{
        K getKey();
        V getValue();
        V setValue(V newValue);
        boolean equals(Object o);
        int hashCode();
    }

    BoboSet<BoboMap.Entry<K,V>> entrySet();

    boolean equals(Object o);
    int hashCode();
}
